public class demo2 {
    public ListNode swapPairs(ListNode head) {
        //这就是直接标记 后进行交换 注意节点之间的连续性
        if(head==null||head.next==null)return head;
        ListNode newprve=new ListNode();
        newprve.next=head;
        ListNode prve=newprve;
        ListNode cur=prve.next;
        ListNode next=cur.next;
        ListNode nnext=next.next;
        while(cur!=null&&next!=null){
            prve.next=next;//连接

            next.next=cur;
            cur.next=nnext;//这两行代码没连接性 所以不考虑顺序


            // 更新节点
            prve=cur;
            cur=nnext;
            if(cur!=null)next=cur.next;
            if(next!=null)nnext=next.next;
        }
        return newprve.next;
    }
}
